package bd;

/*
 * Esse arquivo é parte do Software new Recicle
 * 
 * Copyright (C) 2011-$AnoCorrente$ Eduardo Moreira Barbosa
 * Copyright (C) 2011-$AnoCorrente$ João dos Santos Gonçalves
 * Copyright (C) 2011-$AnoCorrente$ Lucas Ximenes da Fonseca
 * 
 * new Recicle é um Software Livre: Você pode redistribuí-lo e/ou modificá-lo
 * de acordo com os termos da Licença Pública Geral GNU (GNU General Public License)
 * conforme publicada pela Free Software Foundation (FSF). Essa permissão é atribuída
 * na versão 3 da Licença, ou (na sua opinião) qualquer versão.
 * 
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa,
 * se não, escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
 * Boston, MA  02110-1301  USA
 * 
 * Se você tiver alguma dúvida e/ou quiser dar suporte ao desenvolvimento, favor entrar em
 * contato nos e-mails <barbosa.edrd@gmail.com>, <john.jsg@hotmail.com>, <lxf.lucas@gmail.com>.
 */

import java.sql.*;

public class BancoDeDados {

    public static Connection CONNECTION;
    public static Statement STATEMENT;
    public static PreparedStatement PREPAREDSTATEMENT;
    public static ResultSet RESULTSET;
    private String sql;
    
    /**
     * Conectar Banco de Dados padrão em MySQL
     * 
     * @exception       Exceção SQL
     * @exception       Classe não encontrada
     * @author          Eduardo Moreira Barbosa
     * @author          João dos Santos Gonçalves
     * @author          Lucas Ximenes da Fonseca
     */

    public void conectarLocal() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            try {
                CONNECTION = DriverManager.getConnection("jdbc:mysql://localhost/", "root", "root");
            } catch (SQLException sQLException) {
                sQLException.printStackTrace();
            }
        } catch (ClassNotFoundException classNotFoundException) {
            classNotFoundException.printStackTrace();
        }
    }
    
    /**
     * Conectar Banco de Dados Ervilha em MySQL
     * 
     * @exception       Exceção SQL
     * @exception       Classe não encontrada
     * @author          Eduardo Moreira Barbosa
     * @author          João dos Santos Gonçalves
     * @author          Lucas Ximenes da Fonseca
     */

    public void conectarBanco() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            try {
                CONNECTION = DriverManager.getConnection("jdbc:mysql://localhost/Ervilha", "root", "root");
            } catch (SQLException sQLException) {
                sQLException.printStackTrace();
            }
        } catch (ClassNotFoundException classNotFoundException) {
            classNotFoundException.printStackTrace();

        }
    }

    /**
     * Criar Banco de Dados Ervilha se não existir
     * 
     * @exception       Exceção SQL
     * @exception       Exceção SQL
     * @author          Eduardo Moreira Barbosa
     * @author          João dos Santos Gonçalves
     * @author          Lucas Ximenes da Fonseca
     */
    
    public void criarBanco() {
        try {
            sql = "CREATE DATABASE IF NOT EXISTS Ervilha;";
            Statement statement = CONNECTION.createStatement();

            try {
                statement.executeUpdate(sql);
            } catch (SQLException sQLException) {
                sQLException.printStackTrace();
            }
        } catch (SQLException sQLException) {
            sQLException.printStackTrace();
        }
    }
    
    /**
     * Criar tabelas no Banco de Dados Ervilha
     * 
     * @param comando   Comando a ser executado em SQL para a criação de tabela
     * @exception       Exceção SQL
     * @exception       Exceção SQL
     * @author          Eduardo Moreira Barbosa
     * @author          João dos Santos Gonçalves
     * @author          Lucas Ximenes da Fonseca
     */

    public void criarTabela(String comando) {

        try {
            Statement statement = CONNECTION.createStatement();
            try {
                statement.executeUpdate(comando);
               } catch (SQLException sQLException) {
                sQLException.printStackTrace();
            }
        } catch (SQLException sQLException) {
            sQLException.printStackTrace();
        }

    }
}
